package org.dromara.system.service;

import org.dromara.common.mybatis.core.page.PageQuery;
import org.dromara.common.mybatis.core.page.TableDataInfo;
import org.dromara.system.domain.DeviceAlarm;
import org.dromara.system.domain.bo.DeviceAlarmBo;
import org.dromara.system.domain.bo.ProcessDeviceAlarmBo;
import org.dromara.system.domain.vo.DeviceAlarmVo;

import java.util.List;

/**
 * 设备报警Service接口
 *
 * @author Lion Li
 * @date 2024-10-21
 */
public interface IDeviceAlarmService {

    /**
     * 查询设备报警
     *
     * @param id 主键
     * @return 设备报警
     */
    DeviceAlarmVo queryById(Long id);

    /**
     * 分页查询设备报警列表
     *
     * @param bo        查询条件
     * @param pageQuery 分页参数
     * @return 设备报警分页列表
     */
    TableDataInfo<DeviceAlarmVo> queryPageList(DeviceAlarmBo bo, PageQuery pageQuery);

    /**
     * 查询符合条件的设备报警列表
     *
     * @param bo 查询条件
     * @return 设备报警列表
     */
    List<DeviceAlarmVo> queryList(DeviceAlarmBo bo);

    Boolean processAlarm(Long id, ProcessDeviceAlarmBo bo);

    DeviceAlarm getDeviceAlarm(Long variableId, Long level);

    void update(DeviceAlarm deviceAlarm);
}
